<?php
//命名空间
namespace Admin\Controller;
//调用类库
use Think\Controller;
class PublicController extends Controller {
	
	
	
	private $noLoginPages = array('tool/verify');
	
	Public $pagename,$webtitle;
	
	
	
   public  function __construct(){
		//调用上一层的构造函数，防止重载时出错
		parent::__construct();
		
		
		$this->webtitle='京东网';
		
		
		//检查是否已经登录 and in_array()检查当前控制器是否在login页面
		$thisPages = strtolower(CONTROLLER_NAME . '/' . ACTION_NAME);
		if (!isset($_SESSION['admin'])&& !in_array($thisPages, $this->noLoginPages)){
			$this->login();
			exit;
		}
		
		//循环菜单
		$menuArray=array();
		$subArray=array();
		$navArray=array();
		$menuObj=M("menu");
		$menuArray=$menuObj->select(); 
		foreach ($menuArray as $key => $value){
			if ($value['pid']==0){
				$navArray[]=$value;
			}else {
				$subArray[$value['pid']][]=$value;
			}
		}
		$this->assign("navArray",$navArray);
		$this->assign("subArray",$subArray);
	}
	
	//加载视图
  public function view($html){
    	if(!empty($this->pagename))$this->webtitle=$this->pagename.'-'.$this->webtitle;
    	$this->assign('webname',$this->webtitle);
        $this->display('Public/header');
        $this->display($html);
        $this->display('Public/footer');
  }
  
  
  
  
  //登录方法
  Private function login(){
  	if(IS_POST){
  	    //1.根据表单的name属性值来获取提交的表单数据$提交的数据=$_POST[表单name属性的值]
  		//2.I获取参数
  		$username=I('post.username');
		$password=I('post.password');
		$verify = I('post.verify');
		$session=session('admin');
		//M('xxx') 实例化xxx数据表模型，实例化好的数据模型就可以用于增删查改了
		//D('xxx') 加载xxx数据表模型，并实例化xxx数据表模型，实例化好的数据模型就可以用于增删查改了
		$admin=M('admin');
		
		//判断帐号 密码 格式是否正确，判断验证码是否正确
		$rules=array(     
			array('verify','check_verify','验证码错误！',1,'function'), //默认情况下用正则进行验证     
			array('username','3,10','帐号格式不正确',1,'length'), // 在新增的时候验证name字段是否唯一     
			array('password','6,20','密码格式不正确',1,'length'), // 自定义函数验证密码格式
		);
		if (!$admin->validate($rules)->create()){     
				// 如果创建失败 表示验证没有通过 输出错误提示信息
				$this->error($admin->getError());
			}
		
			
		if (!empty($session)){
			$this->success("你已经登录，即将带你到首页",__MODULE__.'/index/index.html');
			exit;
		}
		
			
		//登录	
		//select()查询的是二维数组   find()是查询的是一维数组
		$adminArray=$admin->where("username='{$username}'")->find();
		if($adminArray==false)
		{
			$this->error("用户名不存在",__SELF__);
		}
		if (md5($password)==$adminArray['password'])
		{
			session("admin",array("username"=>$username,"id"=>$adminArray['id'],"level"=>$adminArray['level']));
			$this->success("登录成功",__MODULE__."/index/index");
			exit;
		}else{
			$this->error("登录失败，请检查密码",__SELF__);
		}
		
  	}	
  	$this->assign('webname',$this->webtitle);
  	$this->display('Public/login');
  }
  
  
  
  
  
  //退出登录
  public function loginout(){
  	session('admin',null);
  	$this->success("成功退出登录",__MODULE__.'/public/login.html');
  }
  
  
  
  
  
  
}